El servicio de directorio de internet.

El Sistema de nombres de dominio (DNS) de internet es:

  • una base de datos distribuida implementada en una jerarquía de servidores DNS
  • un protocolo de la capa de aplicación que permite a los host consultar la base de datos distribuida.

El protocolo DNS se ejecuta sobre UDP y utiliza el puerto 53.
Traduce nombres de dominio a direcciones IP y viceversa.

Otros servicios:

  • Alias de un host: Los alias de nombres de host, cuando existen, normalmente son más mnemónicos que los nombres canónicos.
  • Alias de un servidor de correo: Una aplicación de correo puede invocar a los servicios DNS para obtener el nombre de host canónico para un determinado alias, así como la dirección IP del host.
  • Distribución de carga: Para los servidores web replicados hay asociado un conjunto de direcciones IP con un único nombre de host canónico. La base de datos DNS contiene este conjunto de direcciones IP. Cuando los clientes realizan una consulta DNS sobre un nombre asignado a un conjunto de direcciones, el servidor responde con el conjunto completo de direcciones IP, pero rota el orden de las direcciones en cada respuesta, distribuyendo el tráfico porque normalmente se envían mensajes a la primera dirección IP que aparezca.

Cómo funciona DNS

Una base de datos jerárquica y distribuida:

DNS utiliza un gran número de servidores, organizados de forma jerárquica y distribuidos alrededor de todo el mundo.

Tres clases de servidores:

  • Servidores DNS raíz: Existen 13 servidores DNS raíz etiquetados desde la A hasta la M. Cada uno de estos servidores es realmente una agrupación (cluster) de servidores replicados, tanto por propósitos de seguridad como de fiabilidad.

  • Servidores de dominio de nivel superior (TLD): Estos servidores son responsables de los dominios de nivel superior, como son com, net, edu, gov y todos los dominios de nivel superior correspondientes a los distintos países, como por ejemplo uy, uk, fr, ca, y jp.

  • Servidores DNS autoritativos: Todas las organizaciones que tienen hosts accesibles públicamente a través de Internet deben proporcionar registros DNS accesibles públicamente que establezcan la correspondencia entre los nombres de dichos hosts y sus direcciones IP. Un servidor DNS autoritativo de una organización alberga estos registros DNS.

  • Servidor DNS local: no pertenece estrictamente a la jerarquía. Cada ISP tiene un servidor DNS local. Cuando un host realiza una consulta DNS, esta se envía al servidor DNS local, que actúa como proxy, reenviando la consulta a la jerarquía de servidores DNS.

Las consultas DNS pueden ser recursivas o iterativas.

Pasted image 20221005191304.png

¿Por qué no centralizar DNS?

Esto llevaría a múltiples problemas, por ejemplo, un único punto de fallo, por lo que, si ese servidor falla, todo el sistema dejaría de funcionar. A su vez, el volumen de tráfico sería muy alto, la distancia entre la base de datos y los usuarios tendería a ser larga, por lo que los tiempos de retardo aumentarían considerablemente y, además, el mantenimiento sería muy frecuente.

Cacheo y actualización de registros

Una vez que cualquier DNS server conoce un mapeo, lo cachea. Las entradas de la caché desaparecen luego de un tiempo, y a su vez, los TLD servers típicamente son cacheados en los Local DNS Servers, de forma que los Root DNS Servers no son visitados frecuentemente. Se utilizan mecanismos de “Update/Notify” definidos en [RFC 2136].

Registros DNS

Los Servidores DNS que implementan la base de datos distribuida almacenan “Resource Records” (RR), incluyendo aquellos que incluyen el mapeo hostName→IP.
Un RR es una 4-upla formada por (Nombre, Valor, Tipo, TTL), donde TTL es el “Time To Live” del RR, que determina cuando un recurso debe ser retirado de la caché.
Los significados de Nombre y Valor dependen de la definición de Tipo:

  • Tipo A
    • Nombre: hostName
    • Valor: dirección IP
  • Tipo MX
    • Valor: nombre del mailserver asociado con Nombre.
  • Tipo NS
    • Nombre: dominio (ej. Foo.com)
    • Valor: hostName del servidor DNS autoritativo para este dominio.
  • Tipo CNAME
    • Nombre: alias para algún “canonical name”. Ejemplo: www.ibm.com es en realidad servereast.backup2.ibm.com
    • Value: nombre canónico.

Mensajes DNS

DNS es un protocolo de mensajes de consulta y respuesta, ambos con el mismo formato de mensaje.

Encabezado:

  • Identificador: número identificador de la query de 16 bits, la respuesta usa el mismo identificador.
  • Flags:
    • Consulta o Respuesta
    • Recursión deseada
    • Recursión disponible
    • Respuesta es autoritativa

Pasted image 20221006184516.png